/*   Copyright 2010 Juan Rada-Vilela

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
*/
/* 
 * File:   flScalar.h
 * Author: jcrada
 *
 * Created on October 30, 2009, 7:11 PM
 */

#ifndef FL_FLSCALAR_H
#define	FL_FLSCALAR_H

namespace fl {
#ifdef FL_USE_DOUBLE_PRECISION
    typedef double flScalar;
#define FL_EPSILON 1e-14

#else
    typedef float flScalar;
#define FL_EPSILON 1e-5	
#define INFINITY ((float)std::numeric_limits<float>::infinity())
#define NAN ((float)std::numeric_limits<float>::signaling_NaN())
#define isnan(x) _isnan(x)
#define isinf(x) (!_finite(x))
#endif
}

#endif	/* FL_FLSCALAR_H */

